package com.androcode.projectfont;

import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.TextView;

public class CustomTextView extends TextView {

	private String fuente;
	
	public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);

		try {
			init(attrs);
		} catch (Exception e) {
			// Saltara la excepcion si no hemos copiado bien los archivos o
			// hemos indicado fuentes que no existen, en ese caso no hacemos nada
			// y dejamos que actue como un TextView normal
			Log.e("CustomTextView", "Algunos de los parametros de configuracion no se introdujeron correctamente");
		}
		
	}

	public CustomTextView(Context context, AttributeSet attrs) {
		super(context, attrs);
		
		try {
			init(attrs);
		} catch (Exception e) {
			// Saltara la excepcion si no hemos copiado bien los archivos o
			// hemos indicado fuentes que no existen, en ese caso no hacemos nada
			// y dejamos que actue como un TextView normal
			Log.e("CustomTextView", "Algunos de los parametros de configuracion no se introdujeron correctamente");
		}
		
	}
	
	private void init(AttributeSet attrs) throws Exception {
		// Con esto controlamos que podremos seguir usando las fuentes del sistema si queremos
		// Obtenemos la fuente elegida que tiene que estar almacena en el directorio assets
		String fuente = attrs.getAttributeValue("http://schemas.android.com/apk/res/com.androcode.projectfont", "fuente");
		// Y comprobamos el estilo (Bold = 0x1, Italic = ???)
		String style = attrs.getAttributeValue("http://schemas.android.com/apk/res/android", "textStyle");
			
		Typeface font;
			
		// Si hemos indicado fuente procedemos a configurarla
		if (fuente != null) {
			// Comprobamos el estilo
			if (style != null && style.equals("0x1")) { // Bold
				font = Typeface.createFromAsset(getContext().getAssets(), fuente + "_bold.ttf");
		    } else if (style != null && style.equals("0x2")) { // Italic
		    	font = Typeface.createFromAsset(getContext().getAssets(), fuente + "_italic.ttf");
		    } else {
		    	font = Typeface.createFromAsset(getContext().getAssets(), fuente + ".ttf");
		    }
				
			if (font != null) {
				setTypeface(font);
			}
				
		}
			
	}

}
